package com.ld.wms.business.material.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ld.wms.business.material.model.MaterialTypeModel;
import com.ld.wms.business.material.vo.req.MaterialTypeFieldReqVo;
import com.ld.wms.business.material.vo.req.MaterialTypeReqVo;
import com.ld.wms.business.material.vo.resp.MaterialTypeFieldRespVo;
import com.ld.wms.business.material.vo.resp.MaterialTypeRespVo;
import com.ld.wms.common.vo.GenerateListVo;
import com.ld.wms.common.vo.GeneratePageListVo;

import java.util.Map;

/**
 * <p>
 * 物料类型数据 服务类
 * </p>
 *
 * @author wangfeng
 * @since 2025-02-24
 */
public interface MaterialTypeService extends IService<MaterialTypeModel> {

    GeneratePageListVo<MaterialTypeRespVo> getPageList(Integer current, Integer size);

    Map<Long, MaterialTypeModel> getAllMap();

    /**
     * 添加物料类型
     * @param reqVo
     */
    void add(MaterialTypeReqVo reqVo);

    /**
     * 修改物料类型
     * @param reqVo
     */
    void updateById(MaterialTypeReqVo reqVo);

    /**
     * 配置物料字段
     * @param reqVo
     */
    void configMaterialTypeField(MaterialTypeFieldReqVo reqVo);

    /**
     * 获取某个物料类型详情
     * @param materialTypeId
     * @return
     */
    MaterialTypeFieldRespVo getMaterialTypeFieldDetails(Long materialTypeId);
}
